package com.up.upzl.biz.service;

import java.util.Date;
import java.util.List;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import com.up.upzl.biz.domain.Article;
import com.up.upzl.biz.domain.Article.AddSource;
import com.up.upzl.biz.domain.Article.Auditing;
import com.up.upzl.biz.domain.Module.PageType;
import com.up.upzl.biz.domain.Module.ShowType;
import com.up.upzl.biz.domain.ModuleArticle;
import com.up.upzl.base.service.BaseService;

public interface ArticleService extends BaseService<Article, Long> {

	/**
	 * 文章筛选搜索
	 * 
	 * @param oneCatId
	 *            一级分类ID
	 * @param catId
	 *            二级分类ID
	 * @param addSource
	 *            文章添加来源
	 * @param title
	 *            文章标题
	 * @param beginTime
	 *            开始时间
	 * @param endTime
	 *            结束时间
	 * @return Page<Object>
	 */
	Page<Article> findByCondition(Long oneCatId, Long catId, AddSource addSource, Auditing auditing, String title,
			Date beginTime, Date endTime, Pageable page);

	/**
	 * 文章置顶
	 */
	Integer setToTop(Long id);

	/**
	 * 根据模块类型查询文章
	 * 
	 * @param pageType
	 *            类型
	 * @param showType
	 *            显示类型
	 * @return 文章列表
	 */
	List<ModuleArticle> findByModuleType(PageType pageType, ShowType showType);

	/**
	 * 判断id是否存在
	 * 
	 * @param id
	 * 
	 * @return 是否存在
	 */
	Boolean idExists(Long id);

}
